﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Linq;
using System.Data.SqlClient;
using System.Linq;
using System.Net.Mail;
using System.Net.Mime;
using System.Runtime.Serialization;
using System.Text;
using System.Transactions;
using BS_Gimnasio.General;
using DS_Gimnasio;

namespace BS_Gimnasio.Publicidad
{
    [DataContract()]
    public class cls_Eventos : cls_Base
    {
        #region
        public int _idEvento;
        public string _Fecha;
        public string _hora;
        public string _lugarEvento;
        public string _rutaImagen;
        public string _descripcion;
        public int _idUsuario;
        
        #endregion

        #region Propiedasdes
        [DataMember()]
        public string hora
        {
            get { return _hora; }
            set { _hora = value; }
        }
         [DataMember()]
        public int idEvento
        {
            get { return _idEvento; }
            set { _idEvento = value; }
        }
         [DataMember()]
        public string Fecha
        {
            get { return _Fecha; }
            set { _Fecha = value; }
        }

         [DataMember()]
        public String lugarEvento
        {
            get { return _lugarEvento; }
            set { _lugarEvento = value; }
        }

        [DataMember]
        public string rutaImagen
         {
             get { return _rutaImagen; }
             set { _rutaImagen = value; }
         }
        [DataMember]
        public string descripcion
        {
            get { return _descripcion; }
            set { _descripcion = value; }
        }

        //Pendiete agregar tipo de dato para almacenar  Imagenes
         [DataMember()]
        public int idUsuario
        {
            get { return _idUsuario; }
            set { _idUsuario = value; }
        }
        #endregion

        #region Metodos Heredados


         public override bool EliminarRegistro(ref string mensajeError)
             {
                 throw new NotImplementedException();
             }

         public override DataTable Listar(int opcion)
             {
                 try
                 {
                     DataTable dt = new DataTable();

                     using (dtacls_GimnasioDataContext db = new dtacls_GimnasioDataContext())
                     {
                         if (opcion == 1)
                         {


                             ISingleResult<SP_Listar_EventosResult> Resultado = db.SP_Listar_Eventos();
                             ////ISingleResult<SP_Consulta_ForosResult> Resultado = db.SP_Consulta_Foros();
                             dt = cls_Adaptador.ToDataTable(Resultado.ToList());

                         }
                         if (opcion == 2)
                         {


                             ISingleResult<SP_Listar_NoticiasResult> Resultado = db.SP_Listar_Noticias();
                             ////ISingleResult<SP_Consulta_ForosResult> Resultado = db.SP_Consulta_Foros();
                             dt = cls_Adaptador.ToDataTable(Resultado.ToList());

                         }

                     }

                     return dt;
                 }
                 catch (SqlException ex)
                 {
                     NumeroError = ex.ErrorCode;
                     MensajeError = ex.Message;

                     return null;
                 }

                 catch (Exception e)
                 {
                     MensajeError = e.Message;

                     return null;
                 }
             }

         public override cls_Base TraerObjeto()
             {
                 throw new NotImplementedException();
             }

         public override void InsertarActualizarRegistro(bool tipoOperacion, ref string mensajeError)
         {
             if (tipoOperacion)
             {
                 InsertarRegistro(ref mensajeError);
             }

             else
             {
                 //ActualizarRegistro(ref mensajeError);
             }
         }

         private void InsertarRegistro(ref string mensajeError)
         {
             try
             {
                 using (TransactionScope transaction = new TransactionScope())
                 {
                     using (dtacls_GimnasioDataContext db = new dtacls_GimnasioDataContext())
                     {
                         
                         db.SP_Insertar_Evento(_Fecha, _lugarEvento, _descripcion, _rutaImagen, _idUsuario);

                         transaction.Complete();
                     }
                 }
             }

             catch (SqlException ex)
             {
                 NumeroError = ex.ErrorCode;
                 MensajeError = ex.Message;
             }

             catch (Exception e)
             {
                 MensajeError = e.Message;
             }
         }

         public override void OtrosProcesos(int opcion, ref object resultado)
         {
             switch (opcion)
             {
                 case 1:
                     //resultado = this.ListasRutinas();
                     break;
                 default:
                     break;

             }
         }


         #endregion

        #region Metodos Propios
              
        


        #endregion

    }
}
